反射
📄️ 类何时会被加载
先来看第一个问题:如果一个类没有在程序中的任何地方被使用,它会被加载吗?
📄️ 反射基础
当我们需要检查或修改 Java 虚拟机中正在运行的应用程序的运行时行为时通常会使用反射。反射提高了程序的扩展性,程序可以通过使用外部用户定义类的完全限定名(fully-qualified names)来创建扩展性对象的实例或者获取类的信息。
📄️ 开源框架中的反射工具
在很多开源框架中都用到了反射,因此这些框架中都包含了很多的反射工具类,我们可以很方便的直接只用这些工具类,而不用自己再去重新定义。下面介绍几个常用框架中包含的反射工具类。
📄️ 反射效率讨论
使用反射来创建一个类的实例的效率,肯定是要比直接使用 new 低的,那么到底低多少呢?下面我们来测试一下。我们使用 JMH(Java Microbenchmark Harness) 来进行基准测试,然后对比测试结果。